/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package edu.upc.sistemaventas.web;

import edu.upc.sistemaventas.dominio.CategoriaDomain;
import edu.upc.sistemaventas.dominio.EmprendedorDomain;
import edu.upc.sistemaventas.negocio.CategoriaPlanNegocio;
import edu.upc.sistemaventas.negocio.EmprendedorLogicaNegocio;
import java.util.List;
import java.util.Collection;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;

/**
 *
 * @author jdev5
 */
@Controller
public class CategoriaController {
    
    	@RequestMapping(value = "/MantCategoria2")	
	protected ModelAndView listar_categorias(HttpServletRequest request,
			HttpServletResponse response, Model model) throws Exception {
	
            ModelMap modelMap = new ModelMap(); 
            
            CategoriaPlanNegocio negocio = new CategoriaPlanNegocio();
            //CategoriaDomain domain =  new CategoriaDomain();
            
            List<CategoriaDomain> domains= negocio.buscarCategoriasPorPadre(2);
            
            modelMap.addAttribute("listado", domains);
            
            //model
		return new ModelAndView("MantCategoria2");
	}
        
        @RequestMapping(value = "/MantCategoria", method = RequestMethod.GET)
	protected ModelAndView MantCategoria(HttpServletRequest request,
			HttpServletResponse response) throws Exception {

		//Collection<Categoria> lista = null;
		//lista = categoriaService.listarCategorias();
                
                CategoriaPlanNegocio negocio = new CategoriaPlanNegocio();
            //CategoriaDomain domain =  new CategoriaDomain();
            
                Collection<CategoriaDomain> domains = null;
                domains= negocio.listarCategorias();
                //domains = negocio.buscarCategoriasPorPadre(2);
		return new ModelAndView("MantCategoria", "CATEGORIAS", domains);
	}

        @RequestMapping(value = "/verRegistroCategoria", method = RequestMethod.GET)
	protected ModelAndView ingresar(HttpServletRequest request,
			HttpServletResponse response) throws Exception {

		return new ModelAndView("categorias_nuevo");
	}
        
        @RequestMapping(value = "/registrarCategoria", method = RequestMethod.POST)
	protected ModelAndView registroCategoria(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		System.out.println("registarCategoria");
		
		CategoriaDomain cat = new CategoriaDomain();
		//cat.setIdCategoria(Integer.parseInt(request.getParameter("id")));
		cat.setNombreCategoria(request.getParameter("txtNombre"));
		cat.setDescripcion(request.getParameter("txtDescripcion"));
		
		try {
			//CategoriaPlanNegocio.insertarCategoria(cat);
                        CategoriaPlanNegocio negocio = new CategoriaPlanNegocio();
                        negocio.registrarCategoria(cat);
		} catch (Exception e) {
			return new ModelAndView("/error", "mensaje", e.getMessage());
		}

		return new ModelAndView("redirect:MantCategoria.html");
	}

        @RequestMapping(value = "/editarCategoria", method = RequestMethod.GET)
	protected ModelAndView editar(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		CategoriaDomain cat = new CategoriaDomain();
                CategoriaPlanNegocio negocio = new CategoriaPlanNegocio();
                
		cat = negocio.buscarCategoria(Integer.parseInt(request.getParameter("id")));
		
		System.out.println("idProducto "+request.getParameter("id"));
		return new ModelAndView("categorias_editar", "CATEGORIASEN", cat);
	}
	
	@RequestMapping(value = "/guardarModificacionCategoria", method = RequestMethod.POST)
	protected ModelAndView modificarCategoria(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		System.out.println("registarCategoria");
		
		CategoriaDomain cat = new CategoriaDomain();
                CategoriaPlanNegocio negocio = new CategoriaPlanNegocio();
                
		cat.setId(Integer.parseInt(request.getParameter("id")));
		cat.setNombreCategoria(request.getParameter("txtNombre"));
		cat.setDescripcion(request.getParameter("txtDescripcion"));
		
		try {
			negocio.actualizarCategoria(cat);                    
		} catch (Exception e) {
			return new ModelAndView("/error", "mensaje", e.getMessage());
		}

		return new ModelAndView("redirect:MantCategoria.html");
	}

	@RequestMapping(value = "/eliminarCategoria", method = RequestMethod.GET)
	protected ModelAndView eliminarCategoria(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		System.out.println("eliminarCategoria");
		
		CategoriaDomain cat = new CategoriaDomain();
                CategoriaPlanNegocio negocio = new CategoriaPlanNegocio();
                
		cat.setId(Integer.parseInt(request.getParameter("id")));
		cat.setNombreCategoria(request.getParameter("txtNombre"));
		cat.setDescripcion(request.getParameter("txtDescripcion"));
		
		try {
			negocio.eliminarCategoria(Integer.parseInt(request.getParameter("id")));
                        
		} catch (Exception e) {
			return new ModelAndView("/error", "mensaje", e.getMessage());
		}

		return new ModelAndView("redirect:MantCategoria.html");
	}        
}
